import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Dialogs 1.3
import QtQuick.Window 2.15

ApplicationWindow {
    id: mainWindow

    visible: true
    width: 800
    height: 600
    title: qsTr("文件对话框示例")

    Column {
        anchors.centerIn: parent
        spacing: 10

        Button {
            text: qsTr("打开文件")
            onClicked: {
                fileDialog.open(); // 打开文件对话框
            }
        }

        Button {
            text: qsTr("保存文件")
            onClicked: {
                saveFileDialog.open(); // 打开保存文件对话框
            }
        }

        Button {
            text: qsTr("选择文件夹")
            onClicked: {
                selectFileDialog.open(); // 打开选择文件对话框
            }
        }

        Button {
            text: qsTr("选择多个文件")
            onClicked: {
                selectMultipleFileDialog.open(); // 打开选择多个文件对话框
            }
        }

        Label {
            id: resultLabel

            text: qsTr("选择的文件将显示在这里")
        }

    }

    FileDialog {
        id: fileDialog

        title: qsTr("请选择文件")
        folder: shortcuts.home
        nameFilters: ["文本文件 (*.txt)", "图片文件 (*.png *.jpg)", "所有文件 (*)"]
        onAccepted: {
            resultLabel.text = qsTr("选择的文件: ") + fileOpenDialog.fileUrl;
            console.log("选择的文件: " + fileOpenDialog.fileUrl);
        }
        onRejected: {
            console.log("文件选择被取消");
        }
    }

    FileDialog {
        id: saveFileDialog

        title: qsTr("保存文件")
        selectExisting: false
        nameFilters: ["文本文件 (*.txt)", "PDF文件 (*.pdf)", "所有文件 (*)"]
        defaultSuffix: "txt"
        onAccepted: {
            resultLabel.text = qsTr("保存到: ") + saveFileDialog.fileUrl;
            console.log("保存路径为: " + saveFileDialog.fileUrl);
        }
        onRejected: {
            console.log("保存文件被取消");
        }
    }

    FileDialog {
        id: selectFileDialog

        title: qsTr("选择文件夹")
        selectFolder: true
        selectMultiple: false
        onAccepted: {
            resultLabel.text = qsTr("选择的文件夹: ") + selectFileDialog.folder;
            console.log("选择的文件夹: " + selectFileDialog.folder);
        }
    }

    FileDialog {
        id: selectMultipleFileDialog

        title: qsTr("选择多个文件")
        selectMultiple: true
        nameFilters: ["图片文件 (*.png *.jpg)", "所有文件 (*)"]
        onAccepted: {
            var fileList = "";
            for (var i = 0; i < fileUrls.length; i++) {
                fileList += fileUrls[i] + "\n";
            }
            resultLabel.text = qsTr("选择的文件:\n") + fileList;
            console.log("选择的文件数量:\n" + fileUrls.length);
        }
    }

}
